﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;

namespace ActiveStory.UI.Commands
{
    public class UICommands
    {
        static UICommands()
        {
            InputGestureCollection inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.N, ModifierKeys.Control, "Ctrl+N"));
            _newProject = new RoutedUICommand("New Project", "NewProject", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.O, ModifierKeys.Control, "Ctrl+O"));
            _openProject = new RoutedUICommand("Open Project", "OpenProject", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.S, ModifierKeys.Control, "Ctrl+S"));
            _saveProject = new RoutedUICommand("Save Project", "SaveProject", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.E, ModifierKeys.Control, "Ctrl+E"));
            _exportProject = new RoutedUICommand("Export Project", "ExportProject", typeof(UICommands), inputKeys);

            _exportPageToImage = new RoutedUICommand("Export Current Page to Image", "ExportPageToImage", typeof(UICommands));
            _exportAllToImage = new RoutedUICommand("Export All Pages to Images", "ExportAllToImage", typeof(UICommands));
            _exportToWizardOfOz = new RoutedUICommand("Export to Wizard of Oz tool", "ExportToWizardOfOz", typeof(UICommands));

            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.Q, ModifierKeys.Control, "Ctrl+Q"));
            inputKeys.Add(new KeyGesture(Key.X, ModifierKeys.Alt, "Alt+X"));
            _exitActiveStory = new RoutedUICommand("Exit", "Exit", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.D, ModifierKeys.Control, "Ctrl+D"));
            _drawMode = new RoutedUICommand("Draw", "DrawMode", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.P, ModifierKeys.Control, "Ctrl+P"));
            _pointEraserMode = new RoutedUICommand("Point Eraser", "PointEraser", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.K, ModifierKeys.Control, "Ctrl+K"));
            _strokeEraserMode = new RoutedUICommand("Stroke Eraser", "StrokeEraser", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.T, ModifierKeys.Control, "Ctrl+T"));
            _selectionMode = new RoutedUICommand("Selection", "SelectionMode", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.L, ModifierKeys.Control, "Ctrl+L"));
            _createLink = new RoutedUICommand("Create Link", "CreateLink", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.R, ModifierKeys.Control, "Ctrl+R"));
            _removeLink = new RoutedUICommand("Remove Link", "RemoveLink", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.I, ModifierKeys.Control, "Ctrl+I"));
            _importImage = new RoutedUICommand("Import Image", "ImportImage", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.A, ModifierKeys.Alt, "Alt+A"));
            _addPage = new RoutedUICommand("Add Page", "AddPage", typeof(UICommands), inputKeys);
            
            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.D, ModifierKeys.Alt, "Alt+D"));
            _deletePage = new RoutedUICommand("Delete Page", "DeletePage", typeof(UICommands), inputKeys);

            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.C, ModifierKeys.Alt, "Alt+C"));
            _carbonCopyPage = new RoutedUICommand("Carbon Copy Page", "CarbonCopyPage", typeof(UICommands), inputKeys);

            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.R, ModifierKeys.Alt, "Alt+R"));
            _renamePage = new RoutedUICommand("Rename Page", "RenamePage", typeof(UICommands), inputKeys);

            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.P, ModifierKeys.Alt, "Alt+P"));
            _setPenColor = new RoutedUICommand("Pen Color", "PenColor", typeof(UICommands), inputKeys);

            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.S, ModifierKeys.Alt, "Alt+S"));
            _setCanvasSize = new RoutedUICommand("Canvas Size", "CanvasSize", typeof(UICommands), inputKeys);

            inputKeys = new InputGestureCollection();
            inputKeys.Add(new KeyGesture(Key.F1, ModifierKeys.Control, "Ctrl+F1"));
            _about = new RoutedUICommand("About", "About", typeof(UICommands), inputKeys);

            _blueRibbon = new RoutedUICommand("Blue Office Ribbon", "BlueRibbon", typeof(UICommands));

            _blackRibbon = new RoutedUICommand("Black Office Ribbon", "BlackRibbon", typeof(UICommands));

            _silverRibbon = new RoutedUICommand("Silver Office Ribbon", "SilverRibbon", typeof(UICommands));

            _win7Ribbon = new RoutedUICommand("Windows 7 Ribbon", "Win7Ribbon", typeof(UICommands));

            _noRibbon = new RoutedUICommand("Standard Style", "NoRibbon", typeof(UICommands));

            _leftyMode = new RoutedUICommand("Left Handed Mode", "LeftyMode", typeof(UICommands));
        }

        private static RoutedUICommand _newProject;

        private static RoutedUICommand _openProject;

        private static RoutedUICommand _saveProject;

        private static RoutedUICommand _exportProject;

        private static RoutedUICommand _exportPageToImage;

        private static RoutedUICommand _exportAllToImage;

        private static RoutedUICommand _exportToWizardOfOz;

        private static RoutedUICommand _exitActiveStory;

        private static RoutedUICommand _drawMode;

        private static RoutedUICommand _pointEraserMode;

        private static RoutedUICommand _strokeEraserMode;

        private static RoutedUICommand _selectionMode;

        private static RoutedUICommand _createLink;

        private static RoutedUICommand _removeLink;

        private static RoutedUICommand _importImage;

        private static RoutedUICommand _addPage;

        private static RoutedUICommand _deletePage;

        private static RoutedUICommand _carbonCopyPage;

        private static RoutedUICommand _renamePage;

        private static RoutedUICommand _setPenColor;

        private static RoutedUICommand _setCanvasSize;

        private static RoutedUICommand _about;

        private static RoutedUICommand _blueRibbon;

        private static RoutedUICommand _blackRibbon;

        private static RoutedUICommand _silverRibbon;

        private static RoutedUICommand _win7Ribbon;

        private static RoutedUICommand _noRibbon;

        private static RoutedUICommand _leftyMode;

        public static RoutedUICommand NewProject
        {
            get
            {
                return _newProject;
            }
        }

        public static RoutedUICommand OpenProject
        {
            get
            {
                return _openProject;
            }
        }

        public static RoutedUICommand SaveProject
        {
            get
            {
                return _saveProject;
            }
        }

        public static RoutedUICommand ExportProject
        {
            get
            {
                return _exportProject;
            }
        }

        public static RoutedUICommand ExportPageToImage
        {
            get
            {
                return _exportPageToImage;
            }
        }

        public static RoutedUICommand ExportAllToImage
        {
            get
            {
                return _exportAllToImage;
            }
        }

        public static RoutedUICommand ExportToWizardOfOz
        {
            get
            {
                return _exportToWizardOfOz;
            }
        }

        public static RoutedUICommand ExitActiveStory
        {
            get
            {
                return _exitActiveStory;
            }
        }

        public static RoutedUICommand DrawMode
        {
            get
            {
                return _drawMode;
            }
        }

        public static RoutedUICommand PointEraserMode
        {
            get
            {
                return _pointEraserMode;
            }
        }

        public static RoutedUICommand StrokeEraserMode
        {
            get
            {
                return _strokeEraserMode;
            }
        }

        public static RoutedUICommand SelectionMode
        {
            get
            {
                return _selectionMode;
            }
        }

        public static RoutedUICommand CreateLink
        {
            get
            {
                return _createLink;
            }
        }

        public static RoutedUICommand RemoveLink
        {
            get
            {
                return _removeLink;
            }
        }

        public static RoutedUICommand ImportImage
        {
            get
            {
                return _importImage;
            }
        }

        public static RoutedUICommand AddPage
        {
            get
            {
                return _addPage;
            }
        }

        public static RoutedUICommand DeletePage
        {
            get
            {
                return _deletePage;
            }
        }

        public static RoutedUICommand CarbonCopyPage
        {
            get
            {
                return _carbonCopyPage;
            }
        }

        public static RoutedUICommand RenamePage
        {
            get
            {
                return _renamePage;
            }
        }

        public static RoutedUICommand SetPenColor
        {
            get
            {
                return _setPenColor;
            }
        }

        public static RoutedUICommand SetCanvasSize
        {
            get
            {
                return _setCanvasSize;
            }
        }

        public static RoutedUICommand About
        {
            get
            {
                return _about;
            }
        }
        public static RoutedUICommand BlueRibbon
        {
            get
            {
                return _blueRibbon;
            }
        }

        public static RoutedUICommand BlackRibbon
        {
            get
            {
                return _blackRibbon;
            }
        }

        public static RoutedUICommand SilverRibbon
        {
            get
            {
                return _silverRibbon;
            }
        }

        public static RoutedUICommand Win7Ribbon
        {
            get
            {
                return _win7Ribbon;
            }
        }

        public static RoutedUICommand NoRibbon
        {
            get
            {
                return _noRibbon;
            }
        }

        public static RoutedUICommand LeftyMode
        {
            get
            {
                return _leftyMode;
            }
        }
    }
}
